using System.Text.Json.Serialization;
using ZR.Model;

namespace ZR.Model.System.Dto
{
    /// <summary>
    /// 激光雷达状态请求对象
    /// </summary>
    public class WindLidarStatusRequestDto
    {
        /// <summary>
        /// 命令类型
        /// </summary>
        public string CommandType { get; set; } = "status";

        /// <summary>
        /// 命令数据
        /// </summary>
        public object CommandData { get; set; } = null;
    }

    /// <summary>
    /// 激光雷达状态响应对象
    /// </summary>
    public class WindLidarStatusResponseDto
    {
        /// <summary>
        /// 响应数据
        /// </summary>
        [JsonPropertyName("data")]
        public WindLidarStatus Data { get; set; }

        /// <summary>
        /// 详细信息
        /// </summary>
        [JsonPropertyName("detail")]
        public int Detail { get; set; }

        /// <summary>
        /// 消息
        /// </summary>
        [JsonPropertyName("message")]
        public int Message { get; set; }

        /// <summary>
        /// 是否成功
        /// </summary>
        [JsonPropertyName("success")]
        public bool Success { get; set; }
    }

    /// <summary>
    /// 激光雷达状态查询结果
    /// </summary>
    public class WindLidarStatusResultDto
    {
        /// <summary>
        /// 方位角
        /// </summary>
        public double Azimuth { get; set; }

        /// <summary>
        /// 卡片状态
        /// </summary>
        public int CardStatus { get; set; }

        /// <summary>
        /// 仰角
        /// </summary>
        public double Elevation { get; set; }

        /// <summary>
        /// 激光器温度
        /// </summary>
        public double LaserTemp { get; set; }

        /// <summary>
        /// 激光器状态
        /// </summary>
        public int LaserStatus { get; set; }

        /// <summary>
        /// 激光雷达内部湿度
        /// </summary>
        public int LidarInRh { get; set; }

        /// <summary>
        /// 激光雷达内部温度
        /// </summary>
        public int LidarInRt { get; set; }

        /// <summary>
        /// 激光雷达状态
        /// </summary>
        public int LidarStatus { get; set; }

        /// <summary>
        /// 存储空间
        /// </summary>
        public double Storage { get; set; }

        /// <summary>
        /// 查询时间
        /// </summary>
        public DateTime QueryTime { get; set; }

        /// <summary>
        /// 状态描述
        /// </summary>
        public string StatusDescription { get; set; }

        /// <summary>
        /// 激光器状态描述
        /// </summary>
        public string LaserStatusDescription { get; set; }

        /// <summary>
        /// 卡片状态描述
        /// </summary>
        public string CardStatusDescription { get; set; }
    }
}

